package LuoGu;

import java.util.Arrays;
import java.util.Scanner;

public class P1002 {
    static int n;
    static int m;
    static int horseX;
    static int horseY;
    static long[][] dp;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = sc.nextInt();
        horseX = sc.nextInt();
        horseY = sc.nextInt();
        dp=new long[n+1][m+1];
        for (int i = 0; i <= n; i++) {
            for (int j = 0; j <= m; j++) {
                dp[i][j]=-1;
            }
        }
       System.out.print(f(0,0));
    }
    public static long f(int x,int y){
        if(x > n || y > m){
            return 0;
        }
        if(x==n&&y==m){
            return 1;
        }
        if(!isSafe(x,y)){
            return 0;
        }
        if(dp[x][y]!=-1){
            return dp[x][y];
        }
        dp[x][y]=f(x+1,y)+f(x,y+1);
        return f(x+1,y)+f(x,y+1);
    }

    public static boolean isSafe(int x, int y) {//2 4
        if (x == horseX && y ==horseY) {
            return false;
        }
        if ((horseX - 2) >= 0 && (horseY - 1) >= 0 && x == (horseX - 2) && y == (horseY - 1)) {
            return false;
        }
        else if((horseX - 1) >= 0 && (horseY - 2) >= 0 && x == (horseX - 1) && y == (horseY - 2)) {
            return false;
        }
        else if ((horseX + 1) <= n && (horseY - 2) >= 0 && x == (horseX + 1) && y == (horseY - 2)) {
            return false;
        }
        else if((horseX + 2) <= n && (horseY - 1) >= 0 && x == (horseX + 2) && y == (horseY - 1)) {
            return false;
        }
        else if ((horseX + 2) <= n && (horseY + 1) <= m && x == (horseX + 2) && y == (horseY + 1)) {
            return false;
        }
        else if ((horseX + 1) <= n && (horseY + 2) <= m && x == (horseX + 1) && y == (horseY + 2)) {
            return false;
        }
        else if ((horseX - 1) >= 0 && (horseY + 2) <= m && x == (horseX - 1) && y == (horseY + 2)) {
            return false;
        }
        else if ((horseX - 2) >= 0 && (horseY + 1) <= m && x == (horseX - 2) && y == (horseY + 1)) {
            return false;
        }
        return true;
    }
}
